window.CopyTheCodeToClipboard = (function (window, document, navigator) { var textArea, copy; function isOS() { return navigator.userAgent.match( /ipad|iphone/i ); } function createTextArea(text) { textArea = document.createElement( 'textArea' ); textArea.value = text; document.body.appendChild( textArea ); } function selectText() { var range, selection; if (isOS()) { range = document.createRange(); range.selectNodeContents( textArea ); selection = window.getSelection(); selection.removeAllRanges(); selection.addRange( range ); textArea.setSelectionRange( 0, 999999 ); } else { textArea.select(); } } function copyToClipboard() { document.execCommand( 'copy' ); document.body.removeChild( textArea ); // Redirect to page. if ( copyTheCode.redirect_url ) { window.location.href = copyTheCode.redirect_url; } } copy = function (text) { createTextArea( text ); selectText(); copyToClipboard(); }; return { copy: copy }; })( window, document, navigator ); (function ($) { CopyTheCode = { selector: copyTheCode.settings.selector || copyTheCode.selector || 'pre', button_position: copyTheCode.settings['button-position'] || 'inside', /** * Init */ init: function () { this._bind(); this._initialize(); }, /** * Binds events */ _bind: function () { $( document ).on( 'click', '.copy-the-code-button', CopyTheCode.copyCode ); $( document ).on( 'click', '.copy-the-code-shortcode', CopyTheCode.copyShortcode ); }, /** * Initialize the Button */ _initialize: function () { if ( ! $( copyTheCode.selectors ).length) { return; } $( copyTheCode.selectors ).each( function (index, el) { var button_copy_text = el['button_copy_text'] || ''; var button_position = el['button_position'] || ''; var button_text = el['button_text'] || ''; var button_title = el['button_title'] || ''; var selector = el['selector'] || ''; var style = el['style'] || ''; var copy_format = el['copy_format'] || ''; $( selector ).each( function (index, single_selector) { var buttonMarkup = CopyTheCode._getButtonMarkup( button_title, button_text, style ); $( single_selector ).addClass( 'copy-the-code-target' ); if ('cover' !== style && 'outside' === button_position) { $( single_selector ).wrap( '' ); $( single_selector ).parent().prepend( '
' + buttonMarkup + '
' ); } else { $( single_selector ).wrap( '' ); $( single_selector ).append( buttonMarkup ); } switch (style) { case 'svg-icon': $( single_selector ).find( '.copy-the-code-button' ).html( copyTheCode.buttonSvg ); break; case 'cover': case 'button': default: $( single_selector ).find( '.copy-the-code-button' ).html( button_text ); break; } } ); } ); }, /** * Get Copy Button Markup */ _getButtonMarkup: function (button_title, button_text, style) { if ('svg-icon' === style) { button_text = copyTheCode.buttonSvg; } return ''; }, format: function (html) { var tab = '\t'; var result = ''; var indent = ''; html.split( />\s*\r\n'; if (element.match( /^]*[^\/]$/ ) && ! element.startsWith( "input" )) { indent += tab; } } ); return result.substring( 1, result.length - 3 ); }, /** * Copy to Clipboard */ copyShortcode: function (event) { event.preventDefault(); var btn = $( this ), oldText = btn.html(), target = btn.attr( 'data-target' ) || '', copy_content_as = btn.attr( 'data-copy-as' ) || copyTheCode.copy_content_as, button_copy_text = btn.attr( 'data-button-copy-text' ) || '', content = btn.attr( 'data-content' ) || '', link = btn.attr( 'data-link' ) || ''; // Copy the secrate content. if (content) { CopyTheCodeToClipboard.copy( content ); // Copied! btn.text( button_copy_text ); setTimeout( function () { btn.html( oldText ); if ( link ) { window.open( link, '_blank' ).focus() } }, 1000 ); return; } var source = $( target ); if ( ! source.length) { btn.text( 'Not found!' ); setTimeout( function () { btn.text( oldText ); }, 1000 ); return; } var html = source.html(); html = CopyTheCode.format( html ); if ('html' !== copy_content_as) { // Convert the
tags into new line. var brRegex = //gi; html = html.replace( brRegex, "\n" ); // Convert the
tags into new line. var divRegex = //gi; html = html.replace( divRegex, "\n" ); // Convert the

tags into new line. var pRegex = //gi; html = html.replace( pRegex, "\n" ); // Convert the

  • tags into new line. var pRegex = //gi; html = html.replace( pRegex, "\n" ); // Remove all tags. html = html.replace( /(<([^>]+)>)/ig, '' ); } if ('html' !== copy_content_as) { html = html.replace( /[\t\n]+/gm, ' ' ).trim(); } else { var reWhiteSpace = new RegExp( "/^\s+$/" ); html = html.replace( reWhiteSpace, "" ); } var tempElement = $( "
    " ); $( "body" ).append( tempElement ); html = $.trim( html ); $( '#temp-element' ).html( html ); var html = $( '#temp-element' ).html(); $( '#temp-element' ).remove(); var tempHTML = html; // Copy the Code. var tempPre = $( "